<?php

class WucSimbologia extends TTemplateControl {
//<editor-fold defaultstate="collapsed" desc="Variables de Configuracion">
  //variables privadas
  const NOMBRE_WEB_USER_CONTROL = "wucSimbologia";
  const NOMBRE_ARCHIVO_JS = "wucSimbologia.js";

//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="Propiedades">
  public function getTitulo() { return $this->getViewState("Titulo"); }
  public function setTitulo($value) { $this->setViewState("Titulo", $value); }

  public function getIconos() { return $this->getViewState("Iconos"); }
  public function setIconos($value) { $this->setViewState("Iconos", $value); }

  public function getAjusteTop() { return $this->getViewState("AjusteTop"); }
  public function setAjusteTop($value) { $this->setViewState("AjusteTop", $value); }

  public function getAjusteLeft() { return $this->getViewState("AjusteLeft"); }
  public function setAjusteLeft($value) { $this->setViewState("AjusteLeft", $value); }

  public function getWidth() { return $this->getViewState("Width"); }
  public function setWidth($value) { $this->setViewState("Width", $value); }

  public function getColumnas() { return $this->getViewState("Columnas"); }
  public function setColumnas($value) { $this->setViewState("Columnas", $value); }

  public function getActivarOnClick() { return $this->getViewState("ActivarOnClick"); }
  public function setActivarOnClick($value) { $this->setViewState("ActivarOnClick", $value); }

//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="Metodos Privados">
  /**
   * determina si un icono se puede visualizar o no
   * @param <type> $opcion
   * @return boolean 
   * @author VSR, 17/04/2011
   */
  private function esVisible(&$arrIconos, $opcion) {
    $esVisible = false;
    $iconos = "";
    try {
      if(!Utilidades::isNullOrEmpty($this->getIconos())) { $iconos = $this->getIconos(); }
      $iconos = str_replace(";",",",$iconos);
      $iconos = str_replace(" ","",$iconos);
      $iconos = ",$iconos,";
      if (strpos($iconos, ",".$opcion.",") !== false ) {
        switch ($opcion) {
          case "Editar":
            array_push($arrIconos, array("IdIcono"=>"1", "icono"=>"<span><img src=\"".$this->Page->Theme->BaseUrl."/img/_blank.gif\" class=\"ico18-edit\" alt=\"editar\" title=\"editar\" style='vertical-align:middle' /></span>", "texto"=>"Editar"));
            break;
          case "Eliminar":
            array_push($arrIconos, array("IdIcono"=>"2", "icono"=>"<span><img src=\"".$this->Page->Theme->BaseUrl."/img/_blank.gif\" class=\"ico18-trush\" alt=\"eliminar\" title=\"eliminar\" style='vertical-align:middle' /></span>", "texto"=>"Eliminar"));
            break;
          case "VerDetalle":
            array_push($arrIconos, array("IdIcono"=>"3", "icono"=>"<span><img src=\"".$this->Page->Theme->BaseUrl."/img/_blank.gif\" class=\"ico18-view\" alt=\"ver detalle\" title=\"ver detalle\" style='vertical-align:middle' /></span>", "texto"=>"Ver Detalle"));
            break;
          case "Estadistica":
            array_push($arrIconos, array("IdIcono"=>"4", "icono"=>"<span><img src=\"".$this->Page->Theme->BaseUrl."/img/_blank.gif\" class=\"ico18-chart-lines\" alt=\"ver estad&iacute;stica\" title=\"ver estad&iacute;stica\" style='vertical-align:middle' /></span>", "texto"=>"Ver Estad&iacute;stica"));
            break;
          case "EntidadVerde":
            array_push($arrIconos, array("IdIcono"=>"5", "icono"=>"<span class='ico16-rojo'><img src='".$this->Page->Theme->BaseUrl."/img/_blank.gif' class='ico16' alt='' /></span>", "texto"=>$this->textoIconoColorArchivo("rojo","Entidad")));
            break;
          case "EntidadAmarillo":
            array_push($arrIconos, array("IdIcono"=>"6", "icono"=>"<span class='ico16-amarillo'><img src='".$this->Page->Theme->BaseUrl."/img/_blank.gif' class='ico16' alt='' /></span>", "texto"=>$this->textoIconoColorArchivo("amarillo","Entidad")));
            break;
          case "EntidadRojo":
            array_push($arrIconos, array("IdIcono"=>"7", "icono"=>"<span class='ico16-verde'><img src='".$this->Page->Theme->BaseUrl."/img/_blank.gif' class='ico16' alt='' /></span>", "texto"=>$this->textoIconoColorArchivo("verde","Entidad")));
            break;
          case "ArchivoVerde":
            array_push($arrIconos, array("IdIcono"=>"8", "icono"=>"<span class='ico16-rojo'><img src='".$this->Page->Theme->BaseUrl."/img/_blank.gif' class='ico16' alt='' /></span>", "texto"=>$this->textoIconoColorArchivo("rojo","Archivo")));
            break;
          case "ArchivoAmarillo":
            array_push($arrIconos, array("IdIcono"=>"9", "icono"=>"<span class='ico16-amarillo'><img src='".$this->Page->Theme->BaseUrl."/img/_blank.gif' class='ico16' alt='' /></span>", "texto"=>$this->textoIconoColorArchivo("amarillo","Archivo")));
            break;
          case "ArchivoRojo":
            array_push($arrIconos, array("IdIcono"=>"10", "icono"=>"<span class='ico16-verde'><img src='".$this->Page->Theme->BaseUrl."/img/_blank.gif' class='ico16' alt='' /></span>", "texto"=>$this->textoIconoColorArchivo("verde","Archivo")));
            break;
          case "SemaforoVerde":
            array_push($arrIconos, array("IdIcono"=>"11", "icono"=>"<span><img src='".$this->Page->Theme->BaseUrl."/img/18/verde.png' alt='' style='vertical-align:middle' /></span>", "texto"=>"Dentro del plazo"));
            break;
          case "SemaforoAmarillo":
            array_push($arrIconos, array("IdIcono"=>"12", "icono"=>"<span><img src='".$this->Page->Theme->BaseUrl."/img/18/amarillo.png' alt='' style='vertical-align:middle' /></span>", "texto"=>"Por vencer"));
            break;
          case "SemaforoRojo":
            array_push($arrIconos, array("IdIcono"=>"13", "icono"=>"<span><img src='".$this->Page->Theme->BaseUrl."/img/18/rojo.png' alt='' style='vertical-align:middle' /></span>", "texto"=>"Atrasado"));
            break;
          case "Configurar":
            array_push($arrIconos, array("IdIcono"=>"14", "icono"=>"<span><img src=\"".$this->Page->Theme->BaseUrl."/img/_blank.gif\" class=\"ico18-setting\" alt=\"configurar\" title=\"configurar\" style='vertical-align:middle' /></span>", "texto"=>"Configurar"));
            break;
          default:
            break;
        }

        $esVisible = true;
      }
    } catch (Exception $e) {
      $esVisible = false;
    }
    return $esVisible;
  }

  /**
   * devuelve el texto que se mostrara en el icono de color para el tamaño de los archivos
   * @param <type> $color
   * @param <type> $tipo
   * @author VSR, 01/05/2011
   */
  private function textoIconoColorArchivo($color, $tipo) {
    $texto = "";
    $tamanoEntidadRojo = Utilidades::convertirUnidadMedidaArchivo(Archivo::TAMANO_ENTIDAD_ROJO, true);
    $tamanoEntidadAmarillo = Utilidades::convertirUnidadMedidaArchivo(Archivo::TAMANO_ENTIDAD_AMARILLO, true);
    $tamanoArchivoRojo = Utilidades::convertirUnidadMedidaArchivo(Archivo::TAMANO_ARCHIVO_ROJO, true);
    $tamanoArchivoAmarillo = Utilidades::convertirUnidadMedidaArchivo(Archivo::TAMANO_ARCHIVO_AMARILLO, true);

    if ($tipo == "Entidad") {
      switch ($color) {
        case "rojo":
          $texto = "M&aacute;s de $tamanoEntidadRojo";
          break;
        case "amarillo":
          $texto = "Entre $tamanoEntidadAmarillo y $tamanoEntidadRojo";
          break;
        default:
          $texto = "Hasta $tamanoEntidadAmarillo";
          break;
      }
    } else {
      switch ($color) {
        case "rojo":
          $texto = "Mayor a $tamanoArchivoRojo";
          break;
        case "amarillo":
          $texto = "Entre $tamanoArchivoAmarillo y $tamanoArchivoRojo";
          break;
        default:
          $texto = "Menos de $tamanoArchivoAmarillo";
          break;
      }
    }
    return $texto;
  }

  /**
   * registra los javascript asociados
   * @author VSR, 01/01/2011
   */
  protected function registrarJavaScript() {
    $clientId = $this->pnlBloque->ClientID;
    $id = $this->pnlBloque->ID;
    $prefijoControl = str_replace($id, "", $clientId);
    $dataScript = "";
    $ajusteTop = "0";
    $ajusteLeft = "0";
    $activarOnClick = "true";
    if(!Utilidades::isNullOrEmpty($this->getAjusteTop())) { $ajusteTop = $this->getAjusteTop(); }
    if(!Utilidades::isNullOrEmpty($this->getAjusteLeft())) { $ajusteLeft = $this->getAjusteLeft(); }
    if(!Utilidades::isNullOrEmpty($this->getActivarOnClick())) { $activarOnClick = (strtoupper($this->getActivarOnClick()) == "TRUE" || $this->getActivarOnClick() == "1") ? "true" : "false"; }

    //escribe bloque js para registrar el prefijo del control
    if ($this->Visible) {
      $dataScript = "jQuery(document).ready(function() {";
      $dataScript .= "  jQuery(\"#".$this->lblSimbologia->ClientID."\").verSimbologia(\"#".$this->hSimbologia->ClientID."\",".$activarOnClick.",{ajusteTop:'$ajusteTop', ajusteLeft:'$ajusteLeft'});";
      $dataScript .= "});";
      $this->Page->ClientScript->registerEndScript($prefijoControl."verSimbologia", $dataScript);

    }
  }

  /**
   * inicializa valores de los controles
   * @author VSR, 01/01/2011
   */
  protected function inicializaControles() {
    $arrIconos = array();
    $this->lnkCerrar->Attributes->Add("onclick","ocultarElemento('".$this->hSimbologia->ClientID."')");

    //define Ancho Panel Iconos
    if(!Utilidades::isNullOrEmpty($this->getWidth())) {
      $width = $this->getWidth();
    } else {
      $width = "200px";
    }

    //define numero de columnas
    if(!Utilidades::isNullOrEmpty($this->getColumnas())) {
      $this->dlSimbologia->RepeatColumns = $this->getColumnas();
    }

    if(!Utilidades::isNullOrEmpty($this->getTitulo())) { $this->lblSimbologia->Text = $this->getTitulo(); }
    $this->hSimbologia->Style="display:none; position:absolute; top:0px; left:0px;width:$width;";

    //verifica si esta visible
    $this->esVisible($arrIconos,"Editar");
    $this->esVisible($arrIconos,"Eliminar");
    $this->esVisible($arrIconos,"VerDetalle");
    $this->esVisible($arrIconos,"Estadistica");
    $this->esVisible($arrIconos,"EntidadRojo");
    $this->esVisible($arrIconos,"EntidadAmarillo");
    $this->esVisible($arrIconos,"EntidadVerde");
    $this->esVisible($arrIconos,"ArchivoRojo");
    $this->esVisible($arrIconos,"ArchivoAmarillo");
    $this->esVisible($arrIconos,"ArchivoVerde");
    $this->esVisible($arrIconos,"SemaforoVerde");
    $this->esVisible($arrIconos,"SemaforoAmarillo");
    $this->esVisible($arrIconos,"SemaforoRojo");
    $this->esVisible($arrIconos,"Configurar");

    $this->dlSimbologia->DataSource = $arrIconos;
    $this->dlSimbologia->dataBind();
  }
//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="Eventos Controles">
  public function  onLoad($param) {
    parent::onLoad($param);
    //registra los bloques javascript respectivos
    $this->registrarJavaScript();
    $this->inicializaControles();
  }
//</editor-fold>
}
?>
